home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
dskut
/
ess1.zip
/
K_TBL.ASM
< prev
next >
Wrap
Assembly Source File
|
1993-04-29
|
33KB
|
616 lines
;--------------------------------------------
; Tastaturbelegungstabellen für
; den Tastaturtreiber KBD.
;
; Übersetzung mit
; MASM k.tbl;
; LINK k;
; EXE2BIN k.exe kbd.kbd
;--------------------------------------------
.model small
.286
.code
;--------------------------------------------
; ID_Nummern der Tabellenköpfe
ID_End equ 0 ; Ende des Tabellenbereichs
ID_ScanX equ 1 ; Scancode-Umwandlungstabelle
ID_Meaning equ 2 ; Tastenbelegungstabelle
ID_CapsConv equ 3 ; CapsLock Umwandlungstabelle
ID_NumConv equ 4 ; NumLock Umwandlungstabelle
ID_Accent equ 5 ; Akzent-Nachfolgertabelle
ID_ExternFunc equ 6 ; externe Funktion
ID_Padding equ 0ffh ; Füll-Block zur nächsten Segmentgrenze
;--------------------------------------------
;comment %
ScanTbl_ID db ID_ScanX
ScanTbl_Len dw (Offset ScanTbl_End - Offset ScanTbl_ID)
db 015h,015h
db 02ch ; y -> z
db 02ch,02ch
db 015h ; z -> y
db 0
ScanTbl_End:
;endcomment %
;--------------------------------------------
;comment %
AccTbl1_ID db ID_Accent
AccTbl1_Len dw (Offset AccTbl1_End - Offset AccTbl1_ID)
dw 00d27h
dw 12
dw 00d27h,00d27h ; Akzent selbst
dw 03920h,00d27h ; Space -> Akzent selbst
dw 01e61h,01ea0h ; a -> á
dw 01265h,01282h ; e -> é
dw 01769h,017a1h ; i -> í
dw 0186fh,018a2h ; o -> ó
dw 01675h,016a3h ; u -> ú
dw 02e63h,02e87h ; c -> ç
dw 0316eh,031a4h ; n -> ñ
dw 01245h,01290h ; E -> É
dw 02e43h,02e80h ; C -> Ç
dw 0314eh,031a5h ; N -> Ñ
AccTbl1_End:
;endcomment %
;--------------------------------------------
;comment %
AccTbl2_ID db ID_Accent
AccTbl2_Len dw (Offset AccTbl2_End - Offset AccTbl2_ID)
dw 00d60h
dw 7
dw 00d60h,00d60h ; Akzent selbst
dw 03920h,00d60h ; Space -> Akzent selbst
dw 01e61h,01e85h ; a -> à
dw 01265h,0128ah ; e -> è
dw 01769h,0178dh ; i -> ì
dw 0186fh,01895h ; o -> ò
dw 01675h,01697h ; u -> ù
AccTbl2_End:
;endcomment %
;--------------------------------------------
NumTbl_ID db ID_NumConv
NumTbl_Len dw (Offset NumTbl_End - Offset NumTbl_ID)
dw 0
dw 2*(11)
dw 04700h,04737h ; 7 <- Home
dw 04800h,04838h ; 8 <- Up
dw 04900h,04939h ; 9 <- PgUp
dw 04b00h,04b34h ; 4 <- Left
dw 04c00h,04c35h ; 5 <- undefined
dw 04d00h,04d36h ; 6 <- Right
dw 04f00h,04f31h ; 1 <- End
dw 05000h,05032h ; 2 <- Down
dw 05100h,05133h ; 3 <- PgDn
dw 05200h,05230h ; 0 <- Ins
dw 05300h,0532eh ; . <- Del
dw 04737h,04700h ; Home <- 7
dw 04838h,04800h ; Up <- 8
dw 04939h,04900h ; PgUp <- 9
dw 04b34h,04b00h ; Left <- 4
dw 04c35h,04c00h ; undef <- 5
dw 04d36h,04d00h ; Right <- 6
dw 04f31h,04f00h ; End <- 1
dw 05032h,05000h ; Down <- 2
dw 05133h,05100h ; PgDn <- 3
dw 05230h,05200h ; Ins <- 0
dw 0532eh,05300h ; Del <- .
NumTbl_End:
;--------------------------------------------
CapsTbl_ID db ID_CapsConv
CapsTbl_Len dw (Offset CapsTbl_End - Offset CapsTbl_ID)
dw 0
dw 2*(26+3)
dw 01e61h,01e61h and not 20h; a
dw 03062h,03062h and not 20h; b
dw 02e63h,02e63h and not 20h; c
dw 02064h,02064h and not 20h; d
dw 01265h,01265h and not 20h; e
dw 02166h,02166h and not 20h; f
dw 02267h,02267h and not 20h; g
dw 02368h,02368h and not 20h; h
dw 01769h,01769h and not 20h; i
dw 0246ah,0246ah and not 20h; j
dw 0256bh,0256bh and not 20h; k
dw 0266ch,0266ch and not 20h; l
dw 0326dh,0326dh and not 20h; m
dw 0316eh,0316eh and not 20h; n
dw 0186fh,0186fh and not 20h; o
dw 01970h,01970h and not 20h; p
dw 01071h,01071h and not 20h; q
dw 01372h,01372h and not 20h; r
dw 01f73h,01f73h and not 20h; s
dw 01474h,01474h and not 20h; t
dw 01675h,01675h and not 20h; u
dw 02f76h,02f76h and not 20h; v
dw 01177h,01177h and not 20h; w
dw 02d78h,02d78h and not 20h; x
dw 01579h,01579h and not 20h; y
dw 02c7ah,02c7ah and not 20h; z
dw 02884h,0288eh ; ä
dw 02794h,02799h ; ö
dw 01a81h,01a9ah ; ü
dw 01e61h and not 20h,01e61h; a
dw 03062h and not 20h,03062h; b
dw 02e63h and not 20h,02e63h; c
dw 02064h and not 20h,02064h; d
dw 01265h and not 20h,01265h; e
dw 02166h and not 20h,02166h; f
dw 02267h and not 20h,02267h; g
dw 02368h and not 20h,02368h; h
dw 01769h and not 20h,01769h; i
dw 0246ah and not 20h,0246ah; j
dw 0256bh and not 20h,0256bh; k
dw 0266ch and not 20h,0266ch; l
dw 0326dh and not 20h,0326dh; m
dw 0316eh and not 20h,0316eh; n
dw 0186fh and not 20h,0186fh; o
dw 01970h and not 20h,01970h; p
dw 01071h and not 20h,01071h; q
dw 01372h and not 20h,01372h; r
dw 01f73h and not 20h,01f73h; s
dw 01474h and not 20h,01474h; t
dw 01675h and not 20h,01675h; u
dw 02f76h and not 20h,02f76h; v
dw 01177h and not 20h,01177h; w
dw 02d78h and not 20h,02d78h; x
dw 01579h and not 20h,01579h; y
dw 02c7ah and not 20h,02c7ah; z
dw 0288eh,02884h ; ä
dw 02799h,02794h ; ö
dw 01a9ah,01a81h ; ü
CapsTbl_End:
;--------------------------------------------
TblCAf_ID db ID_Meaning
TblCAf_Len dw (Offset TblCAf_End - Offset TblCAf_ID)
MCAf_StateMax dw not 0000011111001111b ; Alt, Ctrl, Shift dürfen gedrückt sein
MCAf_StateMin dw 0000010000001100b ; je eine Shift-, Alt- und Ctrl-Taste muß gedrückt sein
MCAf_funcFlag db 01h
MCAf_Ser1 db 46h,46h ; erster und letzter Scancode in Serie
dw 00c00h ; Shift-Ctrl-Alt-ScrollLock: Nottaste
MCAf_Ser2 db 4ah,4ah ; erster und letzter Scancode in Serie
dw 0b00h ; Shift-Ctrl-Alt-Gr_Minus: toggle Speed
MCAf_Ser3 db 53h,54h or 80h ; erster und letzter Scancode in Serie
dw 0000h ; Shift-Ctrl-Alt-Del: jump to old Dr